package com.lyf.core.service;

import java.util.List;

import com.lyf.core.pojo.Menu;

/**
 * 菜单服务
 * @author lyf
 *
 */
public interface MenuService {

	public String add(Menu m);
	
	public void delete(String menu_id);
	
	public String update(Menu m);
	
	public Menu  findById(String menu_id);
	
	/**
	 * 查询全部菜单
	 * @param hasPerm 是否包含权限url的范畴
	 * @param iterChilds 是否将用户菜单按照层级进行收缩,而不是全部列表输出
	 * @param onlyVisible 是否仅列出可见菜单
	 * @return
	 */
	public List<Menu> findAll(boolean hasPerm ,  boolean iterChilds, boolean onlyVisible) ;
	
	/**
	 * 查询用户的所属菜单 按照用户所拥有的角色,角色对应的菜单项
	 * @param user_id 用户ID
	 * @param hasPerm 是否包含权限url的范畴
	 * @param iterChilds 是否将用户菜单按照层级进行收缩,而不是全部列表输出
	 * @return 用户菜单集合
	 */
	public List<Menu> findByUser(String user_id , boolean hasPerm ,   boolean iterChilds) ;
	
	/**
	 * 修复同步数据库和代码中注解的菜单信息
	 */
	public void repairMenus();
	
	
}
